The present invention relates to identifying interfaces related to a service provider.
A simple Web service scenario typically includes a Web service provider and a Web service client. The Web service provider implements and exposes some functionality to Web service clients. This functionality is described in an implementation independent format, e.g., using the Web Service Description Language (WSDL). Before a Web service client can access a remote Web service at runtime, the Web service client typically has to get the WSDL file from a Web server, and generate and deploy a local proxy for the remote Web service. Usually a commercial Web service has a long lifetime. Due to, for example, changing requirements, the remote Web service needs to be adjusted from time to time. Often it happens that the remote Web service is changed in an incompatible way without changing the Web service client accordingly at the same time.
There are generally two ways to change Web services incompatibly. The first way is that the syntax of an application programming interface (API) has changed. For example, the number of non-optional input or output parameters, the formal parameter types, or the parameter domain values have changed. The second way is that the semantics of the API has changed. For example, the API implementation expects some database entries (e.g., customer or material entries) as its input data and internally calls some other functionality (not necessary a Web service or an API implementation) to, for example, generate additional documents. If the API implementation performs some security checks, then deleting parts of checks for some security constraints would be semantic changes.
Typically, to handle incompatible changes, the changed Web service implementation is regarded as a new Web service. Web service clients that would like to access the changed Web service need to be updated. Often the old and the new Web service are used in parallel. Old Web service clients can call the old Web service and new Web service clients can call either the new Web service or, deliberately, its older version.